package com.cn.zpark.service.impl;

import com.cn.zpark.dao.IUserDao;
import com.cn.zpark.dao.impl.UserDaoImpl;
import com.cn.zpark.pojo.User;
import com.cn.zpark.service.IUserService;

/**
 * @PackageName: com.cn.zpark.service.impl
 * @ClassName: UserServiceImpl
 * @Description:用户业务层接口实现类
 * @author: RZS
 * @date: 2022/4/29  10:20
 */
public class UserServiceImpl implements IUserService {

    // 声明dao层接口对象
    private IUserDao userDao = new UserDaoImpl();

    /**
     * 用户注册
     * @param user 用户对象
     * @return 返回执行结果是否成功
     */
    @Override
    public boolean regUser(User user) {
        // 判断user是否为null
        if(user == null){
            // 如果为null，则返回false
            return false;
        }
        // 调用dao注册用户
        Integer row = userDao.insertUser(user);
        // 判断执行结果，如果结果大于0，则注册用户成功，否则注册失败
        if(row > 0){
            return true;
        }
        return false;
    }

    /**
     * 用户登录接口
     * @param username 用户名
     * @param password 密码
     * @return 用户数据对象
     */
    @Override
    public User login(String username, String password) {
        boolean flag = username == null || "null".equals(username) || password == null || "null".equals(password);
        // 用户名或者密码是否为空
        if(flag){
            // 用户名或者密码为空，登录失败
            return null;
        }

        // 调用dao查询用户数据
        User user = userDao.selectByUsername(username);
        // 判断查询结果是否为null
        if (user == null) {
            // 用户不存在
            return user;
        }
        // 查询结果不为null，则判断用户状态是否被删除
        if (user.getIsDelete() == 0) {
            // 该用户已经被删除，登录失败
            return null;
        }
        // 用户未被删除, 判断密码是否正确
        if(!user.getPassword().equals(password)){
            // 密码错误，登录失败
            return null;
        }

        // 返回用户数据
        return user;
    }
}
